<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Anuncio extends CMS_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper(array('file', 'encode', 'html', 'data_hora'));

        $this->load->library('session');
        $this->load->library('cep/cep');
        $this->load->library('motocerto/motocerto');
        $this->load->model('anuncio_veiculo_model');

        //$this->lang->load_module('motocerto', 'anuncio'); //errado
        $this->load->language('motocerto/anuncio'); // certo
        $this->load->add_module('plano');
        $this->load->add_module('conteudo');
        $this->load->config('plano/parametros');
        $this->load->model('plano/plano_model');
        $this->load->model('conteudo/conteudo_model');

        $this->load->add_module('pessoa');
        $this->load->config('pessoa/parametros');
        $this->load->model('pessoa/pessoa_model');

        $this->load->add_module('veiculo');
        $this->load->config('veiculo/parametros');
        //$this->load->model('veiculo/moto_modelo_dados_model');
        $this->load->model('veiculo/moto_caracteristica_model');

        $this->load->add_module('imagens');
        $this->load->config('imagens/parametros');
        $this->load->model('imagens/imagem_model');
    }

    function index() {
        $v_dados = array();
        $v_dados['planos'] = array();
        $v_dados['cidade'] = '';
        $v_dados['cep'] = '';
        $mais_anuncio = $this->conteudo_model->get(11);
        $v_dados['mais_anuncio'] = anchor(base_url() . 'blog/' . $mais_anuncio->id . '/' . url_title($mais_anuncio->titulo, '_', true), 'Para sua empresa anúnciar várias motos, clique aqui para mais informações.');
        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_site('anunciar-1-plano', $v_dados);
    }

    function cep($pagina = null) {
        $v_dados = array();
        $cep = $this->session->userdata('cep');
        $v_dados['planos'] = array();
        $data['envio'] = 'correio';
        //$data['envio'] = 'develman';
        //$data['envio'] = 'republica_virtual';

        if ($pagina != null && $cep != false) {
            $data['cep'] = $cep->cep;
        } else {
            $data['cep'] = $this->input->post('cep');
        }
        if ($data['cep'] == false) {
            redirect(base_url() . 'anunciar');
        }
        $retorno = json_decode($this->cep->get_cep($data));
        $retorno->cep = $data['cep'];
        //echo var_dump($retorno);
        $v_dados['cep'] = $data['cep'];
        //if (isset($retorno->resultado) && ($retorno->resultado == '1' || $retorno->resultado == '2')) {
            $this->session->set_userdata('cep', $retorno);
            //pre($this->session->userdata('cep'));
            $v_dados['cidade'] = 'Você reside em ' . $retorno->cidade . ' - ' . $retorno->uf . ' - Selecione um dos planos abaixo para anúnciar sua moto.';
            $b_consultar = $this->plano_model->getAllPlanosOrderByPrioridade();

            if ($b_consultar != null) {

                foreach ($b_consultar as $key => $value) {
                    $v_dados['planos'][$key]['plano_nome'] = $value->nome;
                    $v_dados['planos'][$key]['plano_fotos'] = $this->lang->line('lang_fotos');
                    $v_dados['planos'][$key]['plano_valor'] = $value->valor == 0 ? $this->lang->line('lang_gratis') : 'R$ ' . formata_numero_view($value->valor, '2');
                    $v_dados['planos'][$key]['id'] = $value->id;
                    if ($pagina == null) {
                        $v_dados['planos'][$key]['link'] = base_url() . 'moto/cadastrar/' . $value->id;
                    } else {
                        $v_dados['planos'][$key]['link'] = base_url() . 'anuncio/alterar/' . $value->id;
                    }
                    $v_dados['planos'][$key]['plano_anunciar'] = $this->lang->line('lang_anuncio');
                }
            }
        /*} else {
            $v_dados['cidade'] = isset($retorno->resultado_txt) == true ? $retorno->resultado_txt : '';
            $v_dados['cidade'] = isset($retorno->erro) == true ? $retorno->erro : $v_dados['cidade'];
        }*/
        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_site('anunciar-1-plano', $v_dados);
    }

    function imagem($anuncio) {
        if ($this->session->userdata('pessoa') == false) {
            redirect(base_url() . 'index');
        } else {
            $consulta = $this->anuncio_veiculo_model->consutlarQtdadeImagens($anuncio);

            if ($consulta != null && $consulta->quantidade >= 12) {
                
            } else {
                $config = array();
                $config['allowed_types'] = 'jpg|png|gif|jpeg';
                $config['max_size'] = '4000';
                $config['max_width'] = '3000';
                $config['max_height'] = '3000';
                $config['upload_path'] = $_SERVER['DOCUMENT_ROOT'] . "/upload/temp";
                //echo $this->config->item('path_temp');
                //pre($config);

                $this->load->library('upload', $config);
                $v_dados = array();

                //$this->upload->initialize($config);
                //pre($this->upload->do_upload('imag'));
                $this->upload->do_upload();
                $erro = $this->upload->display_errors();
                if ($erro != '') {
                    //echo '1';
                    pre($this->upload->display_errors());
                } else {
                    //echo '2';
                    $this->load->library('image_lib');
                    $_upload_log = $this->upload->data();
                    //pre($_upload_log);
                    $_dados = array();
                    $_dados['users_id'] = null;
                    $_dados['legenda'] = $_upload_log['orig_name'];
                    $_dados['tipo'] = get_mime_by_extension($_upload_log['orig_name']);
                    $_dados['largura'] = (int) $_upload_log['image_width'];
                    $_dados['altura'] = (int) $_upload_log['image_height'];
                    $_dados['status'] = "1";
                    //$_dados['data_criada'] = date('Y-m-d H:i:s');

                    $novo_nome = 'new_' . $_upload_log['orig_name'];

                    $larguras = array($_dados['largura'], 500);
                    $nova_largura = min($larguras);

                    // Calculate thumbnail height from given width to maintain ratio
                    $nova_altura = $_dados['altura'] / $_dados['largura'] * $nova_largura;

                    $config = array();
                    $config['source_image'] = $this->config->item('path_temp') . $_upload_log['orig_name'];
                    $config['image_library'] = 'gd2';
                    $config['maintain_ratio'] = TRUE;
                    $config['width'] = $nova_largura;
                    $config['height'] = $nova_altura;
                    $config['new_image'] = $this->config->item('path_temp') . $novo_nome;

                    $this->image_lib->initialize($config);
                    $this->image_lib->resize();
                    $this->image_lib->clear();
                    unset($config);

                    $_dados['imagem'] = url_base64_encode(read_file($this->config->item('path_temp') . $novo_nome));

                    $v_dados = array();
                    $v_dados['imagens_id'] = $this->imagem_model->cadastrar($_dados);
                    $v_dados['anuncio_veiculos_id'] = $anuncio;
                    $this->anuncio_veiculo_model->inserirImagem($v_dados);
                    unlink($this->config->item('path_temp') . $_upload_log['orig_name']);
                    unlink($this->config->item('path_temp') . $novo_nome);
                    //$v_dados = $this->upload->display_errors();
                }

                redirect(base_url() . 'pessoa/anuncios');
                //pre($this->upload->data());
            }
        }
    }

    function alterar($anuncio) {
        $completo = $this->session->userdata('veiculo_completo');

        if ($completo == false) {
            redirect(base_url() . 'anunciar');
        } else {
            $completo['plano_id'] = $anuncio;
            $this->session->set_userdata('veiculo_completo', $completo);
            redirect(base_url() . 'pessoa/validar');
        }
    }

    function informacao($anuncio) {
        $b_consultar = $this->anuncio_veiculo_model->consultarAnuncio($anuncio);
        $v_dados = array();
        //pre("teste");
        $v_dados = $this->motocerto->menu_acesso();

        if ($b_consultar != null) {
            $favoritos = $this->session->userdata('favoritos');
            $v_dados['id'] = $anuncio;
            $v_dados['modelo'] = $b_consultar->marca . ' ' . $b_consultar->modelo;
            $v_dados['data'] = formatarData($b_consultar->data, array('formato' => 'd/m/Y'));
            $v_dados['preco'] = formata_numero_view($b_consultar->preco);
            $v_dados['cidade'] = $b_consultar->cidade;
            $v_dados['uf'] = $b_consultar->estado;
            $v_dados['quilometragem'] = $b_consultar->quilometragem;
            $v_dados['ano_mod'] = $b_consultar->ano;
            $v_dados['ano_fab'] = $b_consultar->ano_fabricacao;
            $v_dados['estilo'] = $b_consultar->estilo;
            $v_dados['cilindrada'] = $b_consultar->cilindrada;
            $v_dados['observacao'] = $b_consultar->observacao;
            $v_dados['preco_fipe'] = $b_consultar->preco_medio;
            $v_dados['preco_medio'] = '';
            $v_dados['preco_menor'] = '';
            $v_dados['anunciante'] = $b_consultar->nome_proprietario;
            $v_dados['telefones'] = array();
            $v_dados['informacoes'] = array();
            $v_dados['opcionais'] = array();

            $modelo = $b_consultar->moto_modelo_dados_id;
            $pessoa = $b_consultar->pessoa_id;

            $media = $this->anuncio_veiculo_model->consultarPreco($modelo);
            if ($media != null) {
                $v_dados['preco_medio'] = formata_numero_view($media->valor, '2');
            }

            $menor = $this->anuncio_veiculo_model->consultarPreco($modelo, 'MIN');

            if ($menor != null) {
                $v_dados['preco_menor'] = formata_numero_view($menor->valor, '2');
            }

            $pessoa = $this->pessoa_model->consultar_pessoa_contato($pessoa);

            if ($pessoa != null) {
                //pre($pessoa);
                foreach ($pessoa as $key => $value) {
                    $v_dados['telefones'][$key]['telefone'] = $value->telefone;
                }
            }

            $v_dados['marchas'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(1, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['refrigeracao'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(2, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['alimentacao'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(3, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['motor'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(4, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['partida'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(5, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['freios'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(7, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['cor_p'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(8, $b_consultar->id)) == null ? '' : $result->valor;
            $v_dados['cor_s'] = ($result = $this->anuncio_veiculo_model->consultarCorVeiculo(9, $b_consultar->id)) == null ? '' : $result->valor;

            $v_dados['fotos'] = $this->motocerto->get_imagens($anuncio); //$this->_produtos_anuncios($anuncio);

            $imagem = $this->motocerto->get_imagem_aleatoria($anuncio);
            if ($imagem != null) {
                $v_dados['src1'] = $imagem['src1'];
                $v_dados['h1'] = $imagem['h1'];
                $v_dados['w1'] = $imagem['w1'];
            }
            if ($favoritos != false && in_array($anuncio, $favoritos)) {
                $v_dados['imagem'] = 'ico-star-on-3';
                $v_dados['favorito'] = 'Remover das Favoritas';
            } else {
                $v_dados['favorito'] = 'Salvar como Favorita';
                $v_dados['imagem'] = 'ico-favorito';
            }

            $result = $this->anuncio_veiculo_model->consultarCaracteristicas(10, $b_consultar->id);
            if ($result != null) {
                foreach ($result as $key => $value) {
                    $v_dados['informacoes'][$key]['informacao'] = $value->valor;
                }
            }

            $result = $this->anuncio_veiculo_model->consultarCaracteristicas(11, $b_consultar->id);
            if ($result != null) {
                foreach ($result as $key => $value) {
                    $v_dados['opcionais'][$key]['opcional'] = $value->valor;
                }
            }
        }

        $v_dados = $this->motocerto->search($v_dados);

        $this->parser->parse_site('anunciar-7-moto-detalhes', $v_dados);
    }

    function status($id, $status_id) {
        if ($status_id == 4) {
            $dados = array();
            $dados['anuncio_status_id'] = $status_id;
            $this->anuncio_veiculo_model->alterar($dados, $id);
            redirect(base_url() . 'pessoa/anuncios');
        } else if ($status_id == 2 || $status_id == 3) {
            $b_consultar = $this->anuncio_veiculo_model->consultarAnuncio($id);

            if ($b_consultar != null) {
                $basico = array();

                $basico['nome'] = $b_consultar->nome_proprietario;
                $basico['renavam'] = $b_consultar->renavam;
                $basico['placa'] = $b_consultar->placa;

                $completo = array();
                $completo['moto_modelo_dados_id'] = $b_consultar->moto_modelo_dados_id;
                $completo['plano_id'] = $b_consultar->plano_id;
                $completo['ano_fabricacao'] = $b_consultar->ano_fabricacao;
                $completo['quilometragem'] = $b_consultar->quilometragem;
                $completo['caracteristicas'] = array();
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(1, $id);
                $completo['caracteristicas']['marchas'] = $caracteristica[0]->moto_caracteristica_valor_id; //1
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(2, $id);
                $completo['caracteristicas']['refrigeracao'] = $caracteristica[0]->moto_caracteristica_valor_id; //2
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(3, $id);
                $completo['caracteristicas']['alimentacao'] = $caracteristica[0]->moto_caracteristica_valor_id; //3
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(4, $id);
                $completo['caracteristicas']['motor'] = $caracteristica[0]->moto_caracteristica_valor_id; //4
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(5, $id);
                $completo['caracteristicas']['partida'] = $caracteristica[0]->moto_caracteristica_valor_id; //5
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(7, $id);
                $completo['caracteristicas']['freio'] = $caracteristica[0]->moto_caracteristica_valor_id; //7
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(8, $id);
                $completo['caracteristicas']['cor_p'] = $caracteristica[0]->moto_caracteristica_valor_id; //8
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(9, $id);
                $completo['caracteristicas']['cor_s'] = $caracteristica[0]->moto_caracteristica_valor_id; //9

                $completo['informacoes'] = array();
                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(10, $id);

                foreach ($caracteristica as $value) {
                    $completo['informacoes'][$value->moto_caracteristica_valor_id] = $value->moto_caracteristica_valor_id;
                }

                $caracteristica = $this->anuncio_veiculo_model->consultarCaracteristicas(11, $id);

                foreach ($caracteristica as $value) {
                    $completo['informacoes'][$value->moto_caracteristica_valor_id] = $value->moto_caracteristica_valor_id;
                }

                $completo['observacao'] = $b_consultar->observacao;
                $completo['preco'] = $b_consultar->preco;

                $this->session->set_userdata('veiculo_basico', $basico);
                $this->session->set_userdata('veiculo_completo', $completo);

                redirect(base_url() . 'pessoa/validar');
            }
        }
    }

}
